home *** CD-ROM | disk | FTP | other *** search
/ The AGA Experience 3 / AGA Experience Volume 3 (1997)(NFA - SAdENESS)[!].iso / software / utilities / wb_tools / newmenu / example.c < prev    next >
C/C++ Source or Header  |  1996-12-23  |  46KB  |  858 lines

  1. #include "exec/types.h"
  2. #include "intuition/intuition.h"
  3. #include "intuition/newmenu.h"
  4. #include "intuition/classusr.h"
  5. #include "intuition/imageclass.h"
  6. #include "intuition/gadgetclass.h"
  7. #include "intuition/cghooks.h"
  8. #include "intuition/icclass.h"
  9. #include "intuition/classes.h"
  10. #include "libraries/gadtools.h"
  11. #include "dos/dos.h"
  12. #include "stdarg.h"
  13. #include "proto/exec.h"
  14. #include "proto/intuition.h"
  15. #include "proto/graphics.h"
  16. #include "proto/gadtools.h"
  17. #include "proto/dos.h"
  18.  
  19. UBYTE *VerTag="$VER: NewMenu2Example 2.5 (23.12.96)"
  20.               " Written by Brian Gontowski";
  21.  
  22. UWORD chip NormalData []=
  23. {
  24.  0x0000,0x0000,0x001F,0xE3F0,0x0000,0x0000,0x0000,0x0000,
  25.  0x0000,0x003F,0x7FFC,0x0000,0x0000,0x0000,0x0000,0x0000,
  26.  0x00EE,0xF87E,0x0000,0x0000,0x0000,0x0000,0x0000,0x07EF,
  27.  0xBE7F,0xC000,0x0000,0x0000,0x0000,0x0000,0x0FFF,0xEED6,
  28.  0xA000,0x0000,0x0000,0x0000,0x0000,0x0D7C,0x1EDC,0xA000,
  29.  0x0000,0x0000,0x0000,0x0000,0x1FC0,0x0077,0xF000,0x0000,
  30.  0x0000,0x0000,0x0000,0x3B80,0x001F,0xC800,0x0000,0x0000,
  31.  0x0000,0x0000,0x7700,0x0001,0x5C00,0x0000,0x0000,0x0000,
  32.  0x0000,0x7D00,0x0000,0x7E00,0x0000,0x0000,0x0000,0x0001,
  33.  0xFE00,0x0000,0xF600,0x0000,0x0000,0x0000,0x0003,0x7800,
  34.  0x0000,0xF300,0x0000,0x0000,0x0000,0x0006,0x4C00,0x0000,
  35.  0x3700,0x0000,0x0000,0x0000,0x0003,0xD8E0,0x0038,0x3F00,
  36.  0x0000,0x0000,0x0000,0x0000,0xF0E0,0x0038,0x7600,0x0000,
  37.  0x0000,0x0000,0x0000,0x00E0,0x0038,0x0400,0x0000,0x0000,
  38.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  39.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  40.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  41.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  42.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  43.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  44.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  45.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  46.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  47.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  48.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  49.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  50.  0x0000,0x0000,0x0000,0x0000,0x001F,0xFFC0,0x0000,0x0000,
  51.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  52.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  53.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  54.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  55.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  56.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  57.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  58.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  59.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  60.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  61.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x44E7,
  62.  0x9139,0x0000,0x0000,0x0000,0x0000,0x0000,0x6514,0x5B45,
  63.  0x0000,0x0000,0x0000,0x0000,0x0000,0x5517,0x957D,0x0000,
  64.  0x0000,0x0000,0x0000,0x0000,0x4D14,0x9545,0x0000,0x0000,
  65.  0x0000,0x0000,0x0000,0x44E4,0x5145,0xF000,0x0000,0x0000,
  66.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  67.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  68.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  69.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0001,0x0600,
  70.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,0x0180,0x0000,
  71.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0020,0x0000,0x0000,
  72.  0x0000,0x0000,0x0000,0x0080,0x0000,0x0000,0x0000,0x0000,
  73.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  74.  0x0000,0x0400,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  75.  0x0800,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,
  76.  0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  77.  0x0000,0x0000,0x0000,0x0000,0x0000,0x00E0,0x0038,0x0000,
  78.  0x0000,0x0000,0x0000,0x0000,0x21F0,0x007C,0x0000,0x0000,
  79.  0x0000,0x0000,0x0000,0x0318,0x10C6,0x0000,0x0000,0x0000,
  80.  0x0000,0x0000,0x0318,0x10C6,0x0000,0x0000,0x0000,0x0000,
  81.  0x0000,0x4318,0x10C6,0x1000,0x0000,0x0000,0x0000,0x0003,
  82.  0x81F0,0x087C,0x0800,0x0000,0x0000,0x0000,0x0004,0x80E0,
  83.  0x0838,0x0E00,0x0000,0x0000,0x0000,0x0004,0x8000,0x0800,
  84.  0x0900,0x0000,0x0000,0x0000,0x0004,0x8000,0x0800,0x0900,
  85.  0x0000,0x0000,0x0000,0x0002,0x8000,0x0800,0x0900,0x0000,
  86.  0x0000,0x0000,0x0002,0x8000,0x0800,0x0A00,0x0000,0x0000,
  87.  0x0000,0x0001,0x8000,0x0400,0x0A00,0x0000,0x0000,0x0000,
  88.  0x0000,0x8000,0x0400,0x0C00,0x0000,0x0000,0x0000,0x0000,
  89.  0x8000,0x0400,0x0800,0x0000,0x0000,0x0000,0x0000,0x4001,
  90.  0xFC00,0x1000,0x0000,0x0000,0x0000,0x0000,0x4000,0x0000,
  91.  0x1000,0x0000,0x0000,0x0000,0x0000,0x4000,0x0000,0x1000,
  92.  0x0000,0x0000,0x0000,0x0000,0x2000,0x0000,0x2000,0x0000,
  93.  0x0000,0x0000,0x0000,0x2000,0x0000,0x2000,0x0000,0x0000,
  94.  0x0000,0x0000,0x101F,0xFFC0,0x4000,0x0000,0x0000,0x0000,
  95.  0x0000,0x0800,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,
  96.  0x0800,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0400,
  97.  0x0001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0300,0x0006,
  98.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0008,0x0000,
  99.  0x0000,0x0000,0x0000,0x0000,0x0060,0x0030,0x0000,0x0000,
  100.  0x0000,0x0000,0x0000,0x001C,0x01C0,0x0000,0x0000,0x0000,
  101.  0x0000,0x0000,0x0003,0xFE00,0x0000,0x0000,0x0000,0x0000,
  102.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  103.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  104.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  105.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  106.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  107.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  108.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  109.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  110.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  111.  0x0000,0x0000,0x0000,0x0000
  112. };
  113.  
  114. UWORD chip HighData []=
  115. {
  116.  0x0000,0x0000,0x001F,0xE3F0,0x0000,0x0000,0x0000,0x0000,
  117.  0x0000,0x003F,0x7FFC,0x0000,0x0000,0x0000,0x0000,0x0000,
  118.  0x00EE,0xF87E,0x0000,0x0000,0x0000,0x0000,0x0000,0x07EF,
  119.  0xBE7F,0xC000,0x0000,0x0000,0x0000,0x0000,0x0FFF,0xEED6,
  120.  0xA000,0x0000,0x0000,0x0000,0x0000,0x0D7C,0x1EDC,0xA000,
  121.  0x0000,0x0000,0x0000,0x0000,0x1FC0,0x0077,0xF000,0x0000,
  122.  0x0000,0x0000,0x0000,0x3B80,0x001F,0xC800,0x0000,0x0000,
  123.  0x0000,0x0000,0x7700,0x0001,0x5C00,0x0000,0x0000,0x0000,
  124.  0x0000,0x7D00,0x0000,0x7E00,0x0000,0x0000,0x0000,0x0001,
  125.  0xFE00,0x0000,0xF600,0x0000,0x0000,0x0000,0x0003,0x7800,
  126.  0x0000,0xF300,0x0000,0x0000,0x0000,0x0006,0x4C00,0x0000,
  127.  0x3700,0x0000,0x0000,0x0000,0x0003,0xD8E0,0x0038,0x3F00,
  128.  0x0000,0x0000,0x0000,0x0000,0xF0E0,0x0038,0x7600,0x0000,
  129.  0x0000,0x0000,0x0000,0x00E0,0x0038,0x0400,0x0000,0x0000,
  130.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  131.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  132.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  133.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  134.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  135.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  136.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  137.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  138.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  139.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  140.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  141.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  142.  0x0000,0x0000,0x0000,0x0000,0x0010,0x0040,0x0000,0x0000,
  143.  0x0000,0x0000,0x0000,0x000E,0x0380,0x0000,0x0000,0x0000,
  144.  0x0000,0x0000,0x0001,0xFC00,0x0000,0x0000,0x0000,0x0000,
  145.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  146.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  147.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  148.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  149.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  150.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  151.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  152.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  153.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0113,
  154.  0x8F44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0111,0x1044,
  155.  0x0000,0x0000,0x0000,0x0000,0x0000,0x01F1,0x137C,0x0000,
  156.  0x0000,0x0000,0x0000,0x0000,0x0111,0x1144,0x0000,0x0000,
  157.  0x0000,0x0000,0x0000,0x0113,0x8F44,0x0000,0x0000,0x0000,
  158.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  159.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  160.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  161.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0001,0x0600,
  162.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,0x0180,0x0000,
  163.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0020,0x0000,0x0000,
  164.  0x0000,0x0000,0x0000,0x0080,0x0000,0x0000,0x0000,0x0000,
  165.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  166.  0x0000,0x0400,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  167.  0x0800,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,
  168.  0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  169.  0x0000,0x0000,0x0000,0x0000,0x0000,0x00E0,0x0038,0x0000,
  170.  0x0000,0x0000,0x0000,0x0000,0x21F0,0x007C,0x0000,0x0000,
  171.  0x0000,0x0000,0x0000,0x0318,0x10C6,0x0000,0x0000,0x0000,
  172.  0x0000,0x0000,0x0318,0x10C6,0x0000,0x0000,0x0000,0x0000,
  173.  0x0000,0x4318,0x10C6,0x1000,0x0000,0x0000,0x0000,0x0003,
  174.  0x81F0,0x087C,0x0800,0x0000,0x0000,0x0000,0x0004,0x80E0,
  175.  0x0838,0x0E00,0x0000,0x0000,0x0000,0x0004,0x8000,0x0800,
  176.  0x0900,0x0000,0x0000,0x0000,0x0004,0x8000,0x0800,0x0900,
  177.  0x0000,0x0000,0x0000,0x0002,0x8000,0x0800,0x0900,0x0000,
  178.  0x0000,0x0000,0x0002,0x8000,0x0800,0x0A00,0x0000,0x0000,
  179.  0x0000,0x0001,0x8000,0x0400,0x0A00,0x0000,0x0000,0x0000,
  180.  0x0000,0x8000,0x0400,0x0C00,0x0000,0x0000,0x0000,0x0000,
  181.  0x8000,0x0400,0x0800,0x0000,0x0000,0x0000,0x0000,0x4001,
  182.  0xFC00,0x1000,0x0000,0x0000,0x0000,0x0000,0x4000,0x0000,
  183.  0x1000,0x0000,0x0000,0x0000,0x0000,0x4000,0x0000,0x1000,
  184.  0x0000,0x0000,0x0000,0x0000,0x2000,0x0000,0x2000,0x0000,
  185.  0x0000,0x0000,0x0000,0x2000,0x0000,0x2000,0x0000,0x0000,
  186.  0x0000,0x0000,0x1010,0x0040,0x4000,0x0000,0x0000,0x0000,
  187.  0x0000,0x080E,0x0380,0x8000,0x0000,0x0000,0x0000,0x0000,
  188.  0x0801,0xFC00,0x8000,0x0000,0x0000,0x0000,0x0000,0x0400,
  189.  0x0001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0300,0x0006,
  190.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0008,0x0000,
  191.  0x0000,0x0000,0x0000,0x0000,0x0060,0x0030,0x0000,0x0000,
  192.  0x0000,0x0000,0x0000,0x001C,0x01C0,0x0000,0x0000,0x0000,
  193.  0x0000,0x0000,0x0003,0xFE00,0x0000,0x0000,0x0000,0x0000,
  194.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  195.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  196.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  197.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  198.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  199.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  200.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  201.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  202.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  203.  0x0000,0x0000,0x0000,0x0000
  204. };
  205.  
  206. UWORD chip PickedNormalData []=
  207. {
  208.  0x0000,0x0000,0x001F,0xE3F0,0x0000,0x0000,0x0000,0x0000,
  209.  0x0000,0x003F,0x7FFC,0x0000,0x0000,0x0000,0x0000,0x0000,
  210.  0x00EE,0xF87E,0x0000,0x0000,0x0000,0x0000,0x0000,0x07EF,
  211.  0xBE7F,0xC000,0x0000,0x0000,0x0000,0x0000,0x0FFF,0xEED6,
  212.  0xA000,0x0000,0x0000,0x0000,0x0000,0x0D7C,0x1EDC,0xA000,
  213.  0x0000,0x0000,0x0000,0x0000,0x1FC0,0x0077,0xF000,0x0000,
  214.  0x0000,0x0000,0x0000,0x3B80,0x001F,0xC800,0x0000,0x0000,
  215.  0x0000,0x0000,0x7700,0x0001,0x5C00,0x0000,0x0000,0x0000,
  216.  0x0000,0x7D00,0x0000,0x7E00,0x0000,0x0000,0x0000,0x0001,
  217.  0xFE00,0x0000,0xF600,0x0000,0x0000,0x0000,0x0003,0x7800,
  218.  0x0000,0xF300,0x0000,0x0000,0x0000,0x0006,0x4C00,0x0000,
  219.  0x3700,0x0000,0x0000,0x0000,0x0003,0xD8E0,0x0038,0x3F00,
  220.  0x0000,0x0000,0x0000,0x0000,0xF0E0,0x0038,0x7600,0x0000,
  221.  0x0000,0x0000,0x0000,0x00E0,0x0038,0x0400,0x0000,0x0000,
  222.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  223.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  224.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  225.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  226.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  227.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  228.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  229.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  230.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  231.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  232.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x7000,
  233.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x8800,0x0000,
  234.  0x0000,0x0000,0x0000,0x0000,0x0000,0x8800,0x0000,0x0000,
  235.  0x0000,0x0000,0x0000,0x0000,0x8800,0x0000,0x0000,0x0000,
  236.  0x0000,0x0000,0x0000,0x7000,0x0000,0x0000,0x0000,0x0000,
  237.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  238.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  239.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  240.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  241.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  242.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  243.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  244.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  245.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x78E3,
  246.  0xD17D,0xE000,0x0000,0x0000,0x0000,0x0000,0x4444,0x1241,
  247.  0x1000,0x0000,0x0000,0x0000,0x0000,0x7844,0x1479,0x1000,
  248.  0x0000,0x0000,0x0000,0x0000,0x4044,0x1A41,0x1000,0x0000,
  249.  0x0000,0x0000,0x0000,0x40E3,0xD17D,0xE000,0x0000,0x0000,
  250.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  251.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  252.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  253.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0001,0x0600,
  254.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,0x0180,0x0000,
  255.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0020,0x0000,0x0000,
  256.  0x0000,0x0000,0x0000,0x0080,0x0000,0x0000,0x0000,0x0000,
  257.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  258.  0x0000,0x0400,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  259.  0x0800,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,
  260.  0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  261.  0x0000,0x0000,0x0000,0x0000,0x0000,0x00E0,0x0038,0x0000,
  262.  0x0000,0x0000,0x0000,0x0000,0x21F0,0x007C,0x0000,0x0000,
  263.  0x0000,0x0000,0x0000,0x0318,0x10C6,0x0000,0x0000,0x0000,
  264.  0x0000,0x0000,0x0318,0x10C6,0x0000,0x0000,0x0000,0x0000,
  265.  0x0000,0x4318,0x10C6,0x1000,0x0000,0x0000,0x0000,0x0003,
  266.  0x81F0,0x087C,0x0800,0x0000,0x0000,0x0000,0x0004,0x80E0,
  267.  0x0838,0x0E00,0x0000,0x0000,0x0000,0x0004,0x8000,0x0800,
  268.  0x0900,0x0000,0x0000,0x0000,0x0004,0x8000,0x0800,0x0900,
  269.  0x0000,0x0000,0x0000,0x0002,0x8000,0x0800,0x0900,0x0000,
  270.  0x0000,0x0000,0x0002,0x8000,0x0800,0x0A00,0x0000,0x0000,
  271.  0x0000,0x0001,0x8000,0x0400,0x0A00,0x0000,0x0000,0x0000,
  272.  0x0000,0x8000,0x0400,0x0C00,0x0000,0x0000,0x0000,0x0000,
  273.  0x8000,0x0400,0x0800,0x0000,0x0000,0x0000,0x0000,0x4001,
  274.  0xFC00,0x1000,0x0000,0x0000,0x0000,0x0000,0x4000,0x0000,
  275.  0x1000,0x0000,0x0000,0x0000,0x0000,0x4000,0x0000,0x1000,
  276.  0x0000,0x0000,0x0000,0x0000,0x2000,0x7000,0x2000,0x0000,
  277.  0x0000,0x0000,0x0000,0x2000,0x8800,0x2000,0x0000,0x0000,
  278.  0x0000,0x0000,0x1000,0x8800,0x4000,0x0000,0x0000,0x0000,
  279.  0x0000,0x0800,0x8800,0x8000,0x0000,0x0000,0x0000,0x0000,
  280.  0x0800,0x7000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0400,
  281.  0x0001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0300,0x0006,
  282.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0008,0x0000,
  283.  0x0000,0x0000,0x0000,0x0000,0x0060,0x0030,0x0000,0x0000,
  284.  0x0000,0x0000,0x0000,0x001C,0x01C0,0x0000,0x0000,0x0000,
  285.  0x0000,0x0000,0x0003,0xFE00,0x0000,0x0000,0x0000,0x0000,
  286.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  287.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  288.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  289.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  290.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  291.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  292.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  293.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  294.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  295.  0x0000,0x0000,0x0000,0x0000
  296. };
  297.  
  298. UWORD chip PickedHighData []=
  299. {
  300.  0x0000,0x0000,0x001F,0xE3F0,0x0000,0x0000,0x0000,0x0000,
  301.  0x0000,0x003F,0x7FFC,0x0000,0x0000,0x0000,0x0000,0x0000,
  302.  0x00EE,0xF87E,0x0000,0x0000,0x0000,0x0000,0x0000,0x07EF,
  303.  0xBE7F,0xC000,0x0000,0x0000,0x0000,0x0000,0x0FFF,0xEED6,
  304.  0xA000,0x0000,0x0000,0x0000,0x0000,0x0D7C,0x1EDC,0xA000,
  305.  0x0000,0x0000,0x0000,0x0000,0x1FC0,0x0077,0xF000,0x0000,
  306.  0x0000,0x0000,0x0000,0x3B80,0x001F,0xC800,0x0000,0x0000,
  307.  0x0000,0x0000,0x7700,0x0001,0x5C00,0x0000,0x0000,0x0000,
  308.  0x0000,0x7D00,0x0000,0x7E00,0x0000,0x0000,0x0000,0x0001,
  309.  0xFE00,0x0000,0xF600,0x0000,0x0000,0x0000,0x0003,0x7800,
  310.  0x0000,0xF300,0x0000,0x0000,0x0000,0x0006,0x4C00,0x0000,
  311.  0x3700,0x0000,0x0000,0x0000,0x0003,0xD8E0,0x0038,0x3F00,
  312.  0x0000,0x0000,0x0000,0x0000,0xF0E0,0x0038,0x7600,0x0000,
  313.  0x0000,0x0000,0x0000,0x00E0,0x0038,0x0400,0x0000,0x0000,
  314.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  315.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  316.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  317.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  318.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  319.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  320.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  321.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  322.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  323.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  324.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  325.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0007,0xFF00,0x0000,
  326.  0x0000,0x0000,0x0000,0x0000,0x0018,0x00C0,0x0000,0x0000,
  327.  0x0000,0x0000,0x0000,0x0008,0x0080,0x0000,0x0000,0x0000,
  328.  0x0000,0x0000,0x0006,0x0300,0x0000,0x0000,0x0000,0x0000,
  329.  0x0000,0x0001,0xFC00,0x0000,0x0000,0x0000,0x0000,0x0000,
  330.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  331.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  332.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  333.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  334.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  335.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  336.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  337.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3C71,0xE8BE,
  338.  0xF008,0x9C7A,0x2000,0x0000,0x0000,0x2222,0x0920,0x8808,
  339.  0x8882,0x2000,0x0000,0x0000,0x3C22,0x0A3C,0x880F,0x889B,
  340.  0xE000,0x0000,0x0000,0x2022,0x0D20,0x8808,0x888A,0x2000,
  341.  0x0000,0x0000,0x2071,0xE8BE,0xF008,0x9C7A,0x2000,0x0000,
  342.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  343.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  344.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  345.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0001,0x0600,
  346.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,0x0180,0x0000,
  347.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0020,0x0000,0x0000,
  348.  0x0000,0x0000,0x0000,0x0080,0x0000,0x0000,0x0000,0x0000,
  349.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  350.  0x0000,0x0400,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  351.  0x0800,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,
  352.  0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  353.  0x0000,0x0000,0x0000,0x0000,0x0000,0x00E0,0x0038,0x0000,
  354.  0x0000,0x0000,0x0000,0x0000,0x21F0,0x007C,0x0000,0x0000,
  355.  0x0000,0x0000,0x0000,0x0318,0x10C6,0x0000,0x0000,0x0000,
  356.  0x0000,0x0000,0x0318,0x10C6,0x0000,0x0000,0x0000,0x0000,
  357.  0x0000,0x4318,0x10C6,0x1000,0x0000,0x0000,0x0000,0x0003,
  358.  0x81F0,0x087C,0x0800,0x0000,0x0000,0x0000,0x0004,0x80E0,
  359.  0x0838,0x0E00,0x0000,0x0000,0x0000,0x0004,0x8000,0x0800,
  360.  0x0900,0x0000,0x0000,0x0000,0x0004,0x8000,0x0800,0x0900,
  361.  0x0000,0x0000,0x0000,0x0002,0x8000,0x0800,0x0900,0x0000,
  362.  0x0000,0x0000,0x0002,0x8000,0x0800,0x0A00,0x0000,0x0000,
  363.  0x0000,0x0001,0x8000,0x0400,0x0A00,0x0000,0x0000,0x0000,
  364.  0x0000,0x8000,0x0400,0x0C00,0x0000,0x0000,0x0000,0x0000,
  365.  0x8000,0x0400,0x0800,0x0000,0x0000,0x0000,0x0000,0x4001,
  366.  0xFC00,0x1000,0x0000,0x0000,0x0000,0x0000,0x4000,0x0000,
  367.  0x1000,0x0000,0x0000,0x0000,0x0000,0x4000,0x0000,0x1000,
  368.  0x0000,0x0000,0x0000,0x0000,0x2000,0x0000,0x2000,0x0000,
  369.  0x0000,0x0000,0x0000,0x2007,0xFF00,0x2000,0x0000,0x0000,
  370.  0x0000,0x0000,0x1018,0x00C0,0x4000,0x0000,0x0000,0x0000,
  371.  0x0000,0x0808,0x0080,0x8000,0x0000,0x0000,0x0000,0x0000,
  372.  0x0806,0x0300,0x8000,0x0000,0x0000,0x0000,0x0000,0x0401,
  373.  0xFC01,0x0000,0x0000,0x0000,0x0000,0x0000,0x0300,0x0006,
  374.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0008,0x0000,
  375.  0x0000,0x0000,0x0000,0x0000,0x0060,0x0030,0x0000,0x0000,
  376.  0x0000,0x0000,0x0000,0x001C,0x01C0,0x0000,0x0000,0x0000,
  377.  0x0000,0x0000,0x0003,0xFE00,0x0000,0x0000,0x0000,0x0000,
  378.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  379.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  380.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  381.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  382.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  383.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  384.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  385.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  386.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  387.  0x0000,0x0000,0x0000,0x0000
  388. };
  389.  
  390. UWORD chip DisabledData []=
  391. {
  392.  0x0000,0x0000,0x001F,0xE3F0,0x0000,0x0000,0x0000,0x0000,
  393.  0x0000,0x003F,0x7FFC,0x0000,0x0000,0x0000,0x0000,0x0000,
  394.  0x00EE,0xF87E,0x0000,0x0000,0x0000,0x0000,0x0000,0x07EF,
  395.  0xBE7F,0xC000,0x0000,0x0000,0x0000,0x0000,0x0FFF,0xEED6,
  396.  0xA000,0x0000,0x0000,0x0000,0x0000,0x0D7C,0x1EDC,0xA000,
  397.  0x0000,0x0000,0x0000,0x0000,0x1FC0,0x0077,0xF000,0x0000,
  398.  0x0000,0x0000,0x0000,0x3B80,0x001F,0xC800,0x0000,0x0000,
  399.  0x0000,0x0000,0x7700,0x0001,0x5C00,0x0000,0x0000,0x0000,
  400.  0x0000,0x7D00,0x0000,0x7E00,0x0000,0x0000,0x0000,0x0001,
  401.  0xFE00,0x0000,0xF600,0x0000,0x0000,0x0000,0x0003,0x7800,
  402.  0x0000,0xF300,0x0000,0x0000,0x0000,0x0006,0x4C00,0x0000,
  403.  0x3700,0x0000,0x0000,0x0000,0x0003,0xD8E0,0x0038,0x3F00,
  404.  0x0000,0x0000,0x0000,0x0000,0xF0E0,0x0038,0x7600,0x0000,
  405.  0x0000,0x0000,0x0000,0x00E0,0x0038,0x0400,0x0000,0x0000,
  406.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  407.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  408.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  409.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  410.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  411.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  412.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  413.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  414.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  415.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  416.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  417.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  418.  0x0000,0x0000,0x0000,0x0000,0x0001,0xFC00,0x0000,0x0000,
  419.  0x0000,0x0000,0x0000,0x000E,0x0380,0x0000,0x0000,0x0000,
  420.  0x0000,0x0000,0x0010,0x0040,0x0000,0x0000,0x0000,0x0000,
  421.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  422.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  423.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  424.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  425.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  426.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  427.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  428.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  429.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x001E,0x38F3,
  430.  0x9E41,0xF780,0x0000,0x0000,0x0000,0x0011,0x1104,0x5141,
  431.  0x0440,0x0000,0x0000,0x0000,0x0011,0x10E7,0xDE41,0xE440,
  432.  0x0000,0x0000,0x0000,0x0011,0x1014,0x5141,0x0440,0x0000,
  433.  0x0000,0x0000,0x001E,0x39E4,0x5E7D,0xF780,0x0000,0x0000,
  434.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  435.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  436.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  437.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0001,0x0600,
  438.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,0x0180,0x0000,
  439.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0020,0x0000,0x0000,
  440.  0x0000,0x0000,0x0000,0x0080,0x0000,0x0000,0x0000,0x0000,
  441.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  442.  0x0000,0x0400,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  443.  0x0800,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,
  444.  0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  445.  0x0000,0x0000,0x0000,0x0000,0x0000,0x00E0,0x0038,0x0000,
  446.  0x0000,0x0000,0x0000,0x0000,0x21F0,0x007C,0x0000,0x0000,
  447.  0x0000,0x0000,0x0000,0x0318,0x10C6,0x0000,0x0000,0x0000,
  448.  0x0000,0x0000,0x0318,0x10C6,0x0000,0x0000,0x0000,0x0000,
  449.  0x0000,0x4318,0x10C6,0x1000,0x0000,0x0000,0x0000,0x0003,
  450.  0x81F0,0x087C,0x0800,0x0000,0x0000,0x0000,0x0004,0x80E0,
  451.  0x0838,0x0E00,0x0000,0x0000,0x0000,0x0004,0x8000,0x0800,
  452.  0x0900,0x0000,0x0000,0x0000,0x0004,0x8000,0x0800,0x0900,
  453.  0x0000,0x0000,0x0000,0x0002,0x8000,0x0800,0x0900,0x0000,
  454.  0x0000,0x0000,0x0002,0x8000,0x0800,0x0A00,0x0000,0x0000,
  455.  0x0000,0x0001,0x8000,0x0400,0x0A00,0x0000,0x0000,0x0000,
  456.  0x0000,0x8000,0x0400,0x0C00,0x0000,0x0000,0x0000,0x0000,
  457.  0x8000,0x0400,0x0800,0x0000,0x0000,0x0000,0x0000,0x4001,
  458.  0xFC00,0x1000,0x0000,0x0000,0x0000,0x0000,0x4000,0x0000,
  459.  0x1000,0x0000,0x0000,0x0000,0x0000,0x4000,0x0000,0x1000,
  460.  0x0000,0x0000,0x0000,0x0000,0x2000,0x0000,0x2000,0x0000,
  461.  0x0000,0x0000,0x0000,0x2000,0x0000,0x2000,0x0000,0x0000,
  462.  0x0000,0x0000,0x1001,0xFC00,0x4000,0x0000,0x0000,0x0000,
  463.  0x0000,0x080E,0x0380,0x8000,0x0000,0x0000,0x0000,0x0000,
  464.  0x0810,0x0040,0x8000,0x0000,0x0000,0x0000,0x0000,0x0400,
  465.  0x0001,0x0000,0x0000,0x0000,0x0000,0x0000,0x0300,0x0006,
  466.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0008,0x0000,
  467.  0x0000,0x0000,0x0000,0x0000,0x0060,0x0030,0x0000,0x0000,
  468.  0x0000,0x0000,0x0000,0x001C,0x01C0,0x0000,0x0000,0x0000,
  469.  0x0000,0x0000,0x0003,0xFE00,0x0000,0x0000,0x0000,0x0000,
  470.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  471.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  472.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  473.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  474.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  475.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  476.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  477.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  478.  0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  479.  0x0000,0x0000,0x0000,0x0000
  480. };
  481.  
  482. struct Image PrettyImage=
  483. { 0,0,100,50,2,NULL,0x0003,0x0000,NULL };
  484.  
  485. struct NewMenu NewMenu []=
  486.  NM_TITLE, "Project",                          NULL, MFLG_HELPTEXT, 0, NULL,
  487.   NM_ITEM, "New",                                           "N", 0, 0, NULL,
  488.   NM_HELP, "Start a new project",                          NULL, 0, 0, NULL,
  489.   NM_ITEM, "Open...",                                       "O", 0, 0, NULL,
  490.   NM_HELP, "Work on a saved project",                      NULL, 0, 0, NULL, 
  491.   NM_ITEM, NM_BARLABEL,                                    NULL, 0, 0, NULL,
  492.   NM_ITEM, "Save",                                          "S", 0, 0, NULL,
  493.   NM_HELP, "Save the project using the current name",      NULL, 0, 0, NULL, 
  494.   NM_ITEM, "Save As...",                                    "A", 0, 0, NULL,
  495.   NM_HELP, "Save the project using a new name",            NULL, 0, 0, NULL, 
  496.   NM_ITEM, NM_BARLABEL,                                    NULL, 0, 0, NULL,
  497.   NM_ITEM, "Print",                                        NULL, 0, 0, NULL,
  498.   NM_HELP, "Print the project",                            NULL, 0, 0, NULL, 
  499.   NM_ITEM, NM_BARLABEL,                                    NULL, 0, 0, NULL,
  500.   NM_ITEM, "About...",                                      "?", 0, 0, NULL,
  501.   NM_HELP, "About this program",                           NULL, 0, 0, NULL, 
  502.   NM_ITEM, NM_BARLABEL,                                    NULL, 0, 0, NULL,
  503.   NM_ITEM, "Quit",                                          "Q", 0, 0, NULL,
  504.   NM_HELP, "Exit this program",                            NULL, 0, 0, NULL, 
  505.  NM_TITLE, "Edit",                                         NULL, 0, 0, NULL,
  506.   NM_ITEM, "Cut",                             "X", NM_ITEMDISABLED, 0, NULL,
  507.   NM_HELP, "Move the selection into the clipboard",        NULL, 0, 0, NULL,
  508.   NM_ITEM, "Copy",                            "C", NM_ITEMDISABLED, 0, NULL,
  509.   NM_HELP, "Copy the selection into the clipboard",        NULL, 0, 0, NULL,
  510.   NM_ITEM, "Paste",                           "V", NM_ITEMDISABLED, 0, NULL,
  511.   NM_HELP, "Insert the contents of the clipboard",         NULL, 0, 0, NULL,
  512.   NM_ITEM, NM_BARLABEL,                                    NULL, 0, 0, NULL,
  513.   NM_ITEM, "Erase",                          NULL, NM_ITEMDISABLED, 0, NULL,
  514.   NM_HELP, "Remove the selection",                         NULL, 0, 0, NULL,
  515.   NM_ITEM, NM_BARLABEL,                                    NULL, 0, 0, NULL,
  516.   NM_ITEM, "Undo",                            "Z", NM_ITEMDISABLED, 0, NULL,
  517.   NM_HELP, "Undo the previous action",                     NULL, 0, 0, NULL,
  518.  NM_TITLE, "Macros",                                       NULL, 0, 0, NULL,
  519.   NM_ITEM, "Start Learning",                               NULL, 0, 0, NULL,
  520.   NM_HELP, "Start learning a new macro",                   NULL, 0, 0, NULL,
  521.   NM_ITEM, "Stop Learning",                  NULL, NM_ITEMDISABLED, 0, NULL,
  522.   NM_HELP, "Finish learning the macro",                    NULL, 0, 0, NULL,
  523.   NM_ITEM, "Assign Macro...",                              NULL, 0, 0, NULL,
  524.   NM_HELP, "Assign the macro to a key",                    NULL, 0, 0, NULL,
  525.   NM_ITEM, "Load...",                                      NULL, 0, 0, NULL, 
  526.   NM_HELP, "Load a set a macros",                          NULL, 0, 0, NULL,
  527.   NM_ITEM, "Save...",                                      NULL, 0, 0, NULL, 
  528.   NM_HELP, "Save this set of macros",                      NULL, 0, 0, NULL,
  529.  NM_TITLE, "Settings",                                     NULL, 0, 0, NULL,
  530.   NM_ITEM, "Create Icons?",   NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 0, NULL,
  531.   NM_HELP, "Save icons when saving projects?",             NULL, 0, 0, NULL,
  532.   NM_ITEM, NM_BARLABEL,                                    NULL, 0, 0, NULL,
  533.   NM_ITEM, "Load Settings...",                             NULL, 0, 0, NULL, 
  534.   NM_HELP, "Load program settings",                        NULL, 0, 0, NULL,
  535.   NM_ITEM, "Save Settings...",                             NULL, 0, 0, NULL, 
  536.   NM_HELP, "Save the settings to the default file",        NULL, 0, 0, NULL,
  537.   NM_ITEM, "Save Settings As...",                          NULL, 0, 0, NULL, 
  538.   NM_HELP, "Save the settings to a chosen file",           NULL, 0, 0, NULL,
  539.  NM_TITLE, "Restaurant",                                   NULL, 0, 0, NULL,
  540.   NM_ITEM, "Order Soup...",                                 "U", 0, 0, NULL, 
  541.   NM_HELP, "Order a delicious bowl of soup",               NULL, 0, 0, NULL,
  542.   NM_ITEM, "Order Bread...",                                "B", 0, 0, NULL, 
  543.   NM_HELP, "Order a slice of bread (Butter is included)",  NULL, 0, 0, NULL,
  544.   NM_ITEM, NM_BARLABEL,                                    NULL, 0, 0, NULL,
  545.   NM_ITEM, "Start Meal",                                    "M", 0, 0, NULL, 
  546.   NM_HELP, "Begin feasting on the meal",                   NULL, 0, 0, NULL,
  547.   NM_ITEM, "Stop Meal",                                     "T", 0, 0, NULL, 
  548.   NM_HELP, "Finish eating the meal",                       NULL, 0, 0, NULL,
  549.   NM_ITEM, "Overeat?",
  550.                 NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE|MIFLG_CHECKED, 0, NULL,
  551.   NM_HELP, "Allow overeating? (Use with care)",            NULL, 0, 0, NULL,
  552.   NM_ITEM, NM_BARLABEL,                                    NULL, 0, 0, NULL,
  553.   NM_ITEM, "Pay Bill",                                      "P", 0, 0, NULL, 
  554.   NM_HELP, "Pay for the meal",                             NULL, 0, 0, NULL,
  555.   NM_ITEM, "Fruits",          NULL, NM_ITEMDISABLED|MIFLG_NOGHOST|
  556.                                   MIFLG_HIGHLIGHT|MIFLG_NEXTCOLUMN, 0, NULL,
  557.   NM_ITEM, "Apples",                                       NULL, 0, 0, NULL, 
  558.   NM_HELP, "Order how many apples?",                       NULL, 0, 0, NULL, 
  559.    NM_SUB, "1",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 6, NULL,
  560.    NM_SUB, "2",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 5, NULL,
  561.    NM_SUB, "3",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 3, NULL,
  562.   NM_ITEM, "Oranges",                                      NULL, 0, 0, NULL, 
  563.   NM_HELP, "Order how many oranges?",                      NULL, 0, 0, NULL, 
  564.    NM_SUB, "1",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 6, NULL,
  565.    NM_SUB, "2",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 5, NULL,
  566.    NM_SUB, "3",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 3, NULL,
  567.   NM_ITEM, "Grapes",                                       NULL, 0, 0, NULL, 
  568.   NM_HELP, "Order how many grapes?",                       NULL, 0, 0, NULL, 
  569.    NM_SUB, "1",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 6, NULL,
  570.    NM_SUB, "2",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 5, NULL,
  571.    NM_SUB, "3",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 3, NULL,
  572.   NM_ITEM, "Pears",                                        NULL, 0, 0, NULL, 
  573.   NM_HELP, "Order how many pears?",                        NULL, 0, 0, NULL, 
  574.    NM_SUB, "1",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 6, NULL,
  575.    NM_SUB, "2",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 5, NULL,
  576.    NM_SUB, "3",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 3, NULL,
  577.   NM_ITEM, "Vegetables",      NULL, NM_ITEMDISABLED|MIFLG_NOGHOST|
  578.                                   MIFLG_HIGHLIGHT|MIFLG_NEXTCOLUMN, 0, NULL,
  579.   NM_ITEM, "Tomatoes",                                     NULL, 0, 0, NULL, 
  580.   NM_HELP, "Order how many tomatoes?",                     NULL, 0, 0, NULL, 
  581.    NM_SUB, "1",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 6, NULL,
  582.    NM_SUB, "2",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 5, NULL,
  583.    NM_SUB, "3",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 3, NULL,
  584.   NM_ITEM, "Carrots",                                      NULL, 0, 0, NULL, 
  585.   NM_HELP, "Order how many carrots?",                      NULL, 0, 0, NULL, 
  586.    NM_SUB, "1",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 6, NULL,
  587.    NM_SUB, "2",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 5, NULL,
  588.    NM_SUB, "3",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 3, NULL,
  589.   NM_ITEM, "Lettuces",                                     NULL, 0, 0, NULL, 
  590.   NM_HELP, "Order how many lettuces?",                     NULL, 0, 0, NULL, 
  591.    NM_SUB, "1",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 6, NULL,
  592.    NM_SUB, "2",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 5, NULL,
  593.    NM_SUB, "3",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 3, NULL,
  594.   NM_ITEM, "Potatoes",                                     NULL, 0, 0, NULL, 
  595.   NM_HELP, "Order how many potatoes?",                     NULL, 0, 0, NULL,
  596.    NM_SUB, "1",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 6, NULL,
  597.    NM_SUB, "2",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 5, NULL,
  598.    NM_SUB, "3",               NULL, MIFLG_CHECKIT|MIFLG_MENUTOGGLE, 3, NULL,
  599.  NM_TITLE, "Pretty Pictures",                              NULL, 0, 0, NULL,
  600.   IM_ITEM, (APTR)&PrettyImage,                             NULL, 0, 0, NULL,
  601.   IM_ITEM, (APTR)&PrettyImage, NULL, NM_ITEMDISABLED|MIFLG_NOGHOST, 0, NULL,
  602.   NM_HELP, "Pretty picture with no ghosting",              NULL, 0, 0, NULL,
  603.   IM_ITEM, (APTR)&PrettyImage, NULL,               NM_ITEMDISABLED, 0, NULL,
  604.   NM_HELP, "Pretty picture with ghosting",                 NULL, 0, 0, NULL,
  605.  NM_END,   NULL,                                           NULL, 0, 0, NULL, 
  606. };
  607.  
  608. struct ExecBase *SysBase;
  609. struct DosLibrary *DOSBase;
  610. struct IntuitionBase *IntuitionBase;
  611. struct GfxBase *GfxBase;
  612. struct Library *GadToolsBase;
  613. struct Screen *MenuScreen;
  614. struct Window *MenuWindow;
  615. struct DrawInfo *MenuDI;
  616. APTR MenuVI;
  617. struct IClass *MenuIC;
  618. struct Image *MenuImage;
  619. BPTR MenuDFile;
  620. struct ExtMenu *MenuMenus;
  621.  
  622. extern LONG __saveds MenuExample (VOID);
  623. extern VOID PrintMenuID (UBYTE *,UWORD);
  624. extern __saveds __asm ULONG DispatchMenuImageClass (register __a0 struct IClass *,
  625.                                                     register __a2 struct Image *,
  626.                                                     register __a1 struct impDraw *);
  627. extern VOID SPutC (VOID);
  628. extern VOID SPrintf (UBYTE *,UBYTE *,...);
  629.  
  630. LONG __saveds MenuExample ()
  631. {
  632.  BOOL alive=TRUE;
  633.  struct IntuiMessage *imsg;
  634.  UWORD code;
  635.  struct EasyStruct es;
  636.  UBYTE buff [50];
  637.  struct ExtMenuItem *item;
  638.  SysBase=*((struct ExecBase **)0x4);
  639.  if (DOSBase=(struct DosLibrary *)OpenLibrary ("dos.library",39))
  640.    {
  641.     if (IntuitionBase=(struct IntuitionBase *)OpenLibrary ("intuition.library",39))
  642.       {
  643.        if (GfxBase=(struct GfxBase *)OpenLibrary ("graphics.library",39))
  644.          {
  645.           if (GadToolsBase=OpenLibrary ("gadtools.library",39))
  646.             {
  647.              if (MenuScreen=LockPubScreen (NULL))
  648.                {
  649.                 if (MenuDI=GetScreenDrawInfo (MenuScreen))
  650.                   {
  651.                    if (MenuVI=GetVisualInfo (MenuScreen,TAG_END))
  652.                      {
  653.                       if (MenuIC=MakeClass (NULL,IMAGECLASS,NULL,0,NULL))
  654.                         {
  655.                          MenuIC->cl_Dispatcher.h_Entry=(ULONG (*)())DispatchMenuImageClass;
  656.                          MenuIC->cl_Dispatcher.h_SubEntry=NULL;
  657.                          MenuIC->cl_Dispatcher.h_Data=NULL;
  658.                          if (MenuImage=(struct Image *)NewObject (MenuIC,NULL,
  659.                              IA_WIDTH,100,IA_HEIGHT,50,TAG_END))
  660.                            {
  661.                             if (MenuWindow=OpenWindowTags (NULL,WA_Activate,TRUE,
  662.                                 WA_MenuHelp,TRUE,WA_ScreenTitle,
  663.                                 "NewMenu Example - Written By Brian Gontowski",
  664.                                 WA_Title,"Intuition Menu Replacement System - Example",
  665.                                 WA_Height,(MenuScreen->Height)-((MenuScreen->BarHeight)+1),
  666.                                 WA_MinWidth,350,WA_MinHeight,50,
  667.                                 WA_DragBar,TRUE,WA_DepthGadget,TRUE,WA_SizeGadget,TRUE,
  668.                                 WA_CloseGadget,TRUE,WA_SimpleRefresh,TRUE,WA_NewLookMenus,TRUE,
  669.                                 WA_IDCMP,IDCMP_MENUPICK|IDCMP_MENUHELP|IDCMP_CLOSEWINDOW,
  670.                                 TAG_END))
  671.                               {
  672.                                SPrintf (buff,"RAW://///WINDOW%lx",MenuWindow);
  673.                                MenuDFile=Open (buff,MODE_OLDFILE);
  674.                                if (!FindPort ("NewLook Menu Handler"))
  675.                                  {
  676.                                   es.es_StructSize=sizeof (struct EasyStruct);
  677.                                   es.es_Flags=NULL;
  678.                                   es.es_Title="NewMenu Example";
  679.                                   es.es_TextFormat="Please note that many of the new features "
  680.                                                    "are not available because NewMenu is not running.";
  681.                                   es.es_GadgetFormat="OK";
  682.                                   SetWindowPointer (MenuWindow,WA_BusyPointer,TRUE,TAG_END);
  683.                                   EasyRequest (MenuWindow,&es,NULL);
  684.                                   SetWindowPointer (MenuWindow,TAG_END);
  685.                                  }
  686.                                if (MenuMenus=(struct ExtMenu *)CreateMenus (NewMenu,TAG_END))
  687.                                  {
  688.                                   LayoutMenus ((struct Menu *)MenuMenus,MenuVI,
  689.                                                GTMN_NewLookMenus,TRUE,TAG_END);
  690.                                   item=(struct ExtMenuItem *)ItemAddress ((struct Menu *)MenuMenus,
  691.                                                                           FULLMENUNUM (5,0,NOSUB));
  692.                                   item->ItemFill=(APTR)MenuImage;
  693.                                   item->SelectFill=(APTR)MenuImage;
  694.                                   item->Flags&=~MIFLG_HIGHFLAGS;
  695.                                   item=(struct ExtMenuItem *)ItemAddress ((struct Menu *)MenuMenus,
  696.                                                                           FULLMENUNUM (5,1,NOSUB));
  697.                                   item->ItemFill=(APTR)MenuImage;
  698.                                   item->SelectFill=(APTR)MenuImage;
  699.                                   item->Flags&=~MIFLG_HIGHFLAGS;
  700.                                   item=(struct ExtMenuItem *)ItemAddress ((struct Menu *)MenuMenus,
  701.                                                                           FULLMENUNUM (5,2,NOSUB));
  702.                                   item->ItemFill=(APTR)MenuImage;
  703.                                   item->SelectFill=(APTR)MenuImage;
  704.                                   item->Flags&=~MIFLG_HIGHFLAGS;
  705.                                   SetMenuStrip (MenuWindow,(struct Menu *)MenuMenus);
  706.                                   SetMenuStrip (MenuWindow,(struct Menu *)MenuMenus);
  707.                                   while (alive)
  708.                                        {
  709.                                         Wait (1<<MenuWindow->UserPort->mp_SigBit);
  710.                                         while (imsg=(struct IntuiMessage *)
  711.                                                GetMsg (MenuWindow->UserPort))
  712.                                              {
  713.                                               switch (imsg->Class)
  714.                                                     {
  715.                                                      case IDCMP_MENUPICK:
  716.                                                           if ((code=imsg->Code)==MENUNULL)
  717.                                                              PrintMenuID ("IDCMP_MENUPICK",code);
  718.                                                           for (; code!=MENUNULL;
  719.                                                                code=ItemAddress ((struct Menu *)MenuMenus,code)->NextSelect)
  720.                                                              {
  721.                                                               PrintMenuID ("IDCMP_MENUPICK",code);
  722.                                                               if (code==FULLMENUNUM (0,10,NOSUB))
  723.                                                                  alive=FALSE;
  724.                                                              }
  725.                                                           break;
  726.                                                      case IDCMP_MENUHELP:
  727.                                                           PrintMenuID ("IDCMP_MENUHELP",imsg->Code);
  728.                                                           break;
  729.                                                      case IDCMP_CLOSEWINDOW:
  730.                                                           alive=FALSE;
  731.                                                           break;
  732.                                                     }
  733.                                               ReplyMsg ((struct Message *)imsg);
  734.                                              }
  735.                                        }
  736.                                   ClearMenuStrip (MenuWindow);
  737.                                   FreeMenus ((struct Menu *)MenuMenus);
  738.                                  }
  739.                                if (MenuDFile)
  740.                                   Close (MenuDFile);
  741.                                else
  742.                                   CloseWindow (MenuWindow);
  743.                               }
  744.                             DisposeObject (MenuImage);
  745.                            }
  746.                          FreeClass (MenuIC);
  747.                         }
  748.                       FreeVisualInfo (MenuVI);
  749.                      }
  750.                    FreeScreenDrawInfo (MenuScreen,MenuDI);
  751.                   }
  752.                 UnlockPubScreen (NULL,MenuScreen);
  753.                }
  754.              CloseLibrary (GadToolsBase);
  755.             }
  756.           CloseLibrary ((struct Library *)GfxBase);
  757.          }
  758.        CloseLibrary ((struct Library *)IntuitionBase);
  759.       }
  760.     CloseLibrary ((struct Library *)DOSBase);
  761.    }
  762.  return (RETURN_OK);
  763. }
  764.  
  765. VOID PrintMenuID (UBYTE *idcmp,
  766.                   UWORD code)
  767. {
  768.  UWORD n;
  769.  if (!MenuDFile)
  770.     return;
  771.  FPrintf (MenuDFile,"%s: ",idcmp);
  772.  if (code==MENUNULL)
  773.    {
  774.     FPrintf (MenuDFile,"MENUNULL\n",NULL);
  775.     return;
  776.    }
  777.  if ((n=MENUNUM (code))==NOMENU)
  778.     FPrintf (MenuDFile,"NOMENU",NULL);
  779.  else
  780.     FPrintf (MenuDFile,"MENU=%-2lu",n);
  781.  if ((n=ITEMNUM (code))==NOITEM)
  782.     FPrintf (MenuDFile," NOITEM",NULL);
  783.  else
  784.     FPrintf (MenuDFile," ITEM=%-2lu",n);
  785.  if ((n=SUBNUM (code))==NOSUB)
  786.     FPrintf (MenuDFile," NOSUB\n",NULL);
  787.  else
  788.     FPrintf (MenuDFile," SUB=%-2lu\n",n);
  789.  return;
  790. }
  791.  
  792. __saveds __asm ULONG DispatchMenuImageClass (register __a0 struct IClass *cl,
  793.                                              register __a2 struct Image *image,
  794.                                              register __a1 struct impDraw *msg)
  795. {
  796.  struct RastPort *rp;
  797.  WORD x, y;
  798.  UWORD *data=NULL;
  799.  struct Image timage;
  800.  switch (msg->MethodID)
  801.        {
  802.         case IM_DRAW:
  803.              rp=msg->imp_RPort;
  804.              x=msg->imp_Offset.X;
  805.              y=msg->imp_Offset.Y;
  806.              switch (msg->imp_State)
  807.                    {
  808.                     case IDS_MENUNORMAL:
  809.                          data=NormalData;
  810.                          break;
  811.                     case IDS_MENUHIGH:
  812.                          data=HighData;
  813.                          break;
  814.                     case IDS_MENUPICKEDNORMAL:
  815.                          data=PickedNormalData;
  816.                          break;
  817.                     case IDS_MENUPICKEDHIGH:
  818.                          data=PickedHighData;
  819.                          break;
  820.                     case IDS_MENUDISABLED:
  821.                          data=DisabledData;
  822.                          break;
  823.                    }
  824.              if (data)
  825.                {
  826.                 CopyMem (&PrettyImage,&timage,sizeof (struct Image));
  827.                 timage.ImageData=data;
  828.                 DrawImage (rp,&timage,x,y);
  829.                }
  830.              return (TRUE);
  831.         case OM_NEW:
  832.         case OM_GET:
  833.         case OM_SET:
  834.         case IM_HITTEST:
  835.         case IM_ERASE:
  836.         case OM_DISPOSE:
  837.         default:
  838.              return ((ULONG)DoSuperMethodA (cl,(Object *)image,(Msg)msg));
  839.     }
  840.  return (FALSE);
  841. }
  842.  
  843. VOID SPutC ()
  844. {
  845.  __builtin_emit (0x16C0); /* move.b D0,(A3)+ */
  846. }
  847.  
  848. VOID SPrintf (UBYTE *buff,
  849.               UBYTE *fmt,
  850.               ...)
  851. {
  852.  va_list args;
  853.  va_start (args,fmt);
  854.  RawDoFmt (fmt,args,SPutC,buff);
  855.  va_end (args);
  856.  return;
  857. }